package com.gk.panda.apis.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gk.panda.apis.dto.PasswordDto;
import com.gk.panda.apis.dto.PersonalDataDto;
import com.gk.panda.apis.dto.UserSearchDto;
import com.gk.panda.apis.dto.UserUpdateDto;
import com.gk.panda.pojo.UrlInfo;
import com.gk.panda.pojo.User;

import java.util.List;

public interface UserService extends IService<User> {

    /**
     * 根据角色id获取用户列表
     * @param roleId
     * @return
     */
    List<User> getUserByRoleId(int roleId);

    /**
     * 根据机构id获取用户列表
     * @param OrgId
     * @return
     */
    List<User> searchUserByOrgId(int OrgId);

    /**
     * 修改个人信息
     * @param dataDto
     * @return
     */
    int updatePersonalData(PersonalDataDto dataDto);

    /**
     * 修改用户
     * @param updateDto
     * @return
     */
    int updateUser(UserUpdateDto updateDto);

    /**
     * 修改个人密码
     * @param dto
     * @return
     */
    int updatePersonalPassword(PasswordDto dto);

    /**
     * 根据用户名获取可操作的机构id
     * @param username
     * @return
     */
    List<Integer> getOperableOrg(String username);

    /**
     * 分页查询用户列表
     * @param searchDto
     * @return
     */
    Page<User> searchUsers(UserSearchDto searchDto);

    /**
     * 获取当前登录用户信息
     * @return
     */
    User getUserInfo();

    List<UrlInfo> getUserPermission(String username);

    List<UrlInfo> getExcludeUrl();
}
